package two.chapter_1.c1_1;

import edu.princeton.cs.algs4.StdOut;

public class Ex1_1_13 {

    /** 打印出一个M行N列的二维数组的转置
     * 矩阵的转置
     * 设A为m×n阶矩阵（即m行n列），第i 行j 列的元素是a(i,j)，即：A=a(i,j)
     * 定义A的转置为这样一个n×m阶矩阵B，满足B=a(j,i)，即 b (i,j)=a (j,i)
     * @param args
     */
    public static void main(String[] args) {
        int[][] transposed=new int[3][5];
        int[][] matrix=new int[5][3];
        matrix[0][0]=1;
        matrix[0][1]=2;
        matrix[1][1]=1;
        matrix[1][2]=2;

        for (int i=0;i<matrix[0].length;i++){
            for (int j=0;j<matrix.length;j++){
                transposed[i][j]=matrix[j][i];
            }
        }

        printArray(matrix);
        printArray(transposed);

    }



    private static void printArray(int a[][]){
        /*for (int j = 0; j < a[0].length; j++) {
            StdOut.print(" "+j);
        }*/
        StdOut.print("\n");
        for (int i = 0; i < a.length; i++) {
            //StdOut.print(i);
            for (int j = 0; j <  a[0].length; j++) {
                //StdOut.print("列号："+j);
               /* if (booleans[i][j]){
                    StdOut.print("*");
                }else {
                    StdOut.print("  ");
                }*/
               StdOut.print(a[i][j]+" ");
            }
            StdOut.print("\n");
        }

    }


}
